152. Maximum Product Subarray - LeetCode Solution


Array Dynamic programming

Python Code:

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        ans = nums[0]
        
        mi = nums[0]
        ma = nums[0]
        
        
        for i in range(1, len(nums), 1):
            if nums[i] <0:
                ma, mi = mi, ma
            ma = max(nums[i], ma * nums[i])
            mi = min(nums[i], mi * nums[i])
    
            ans = max(ans, ma)
        return ans


Comments

Submit
0 Comments
More Questions

13. Roman to Integer
2. Add Two Numbers
515. Find Largest Value in Each Tree Row
345. Reverse Vowels of a String
628. Maximum Product of Three Numbers
1526A - Mean Inequality
1526B - I Hate 1111
1881. Maximum Value after Insertion
237. Delete Node in a Linked List
27. Remove Element
39. Combination Sum
378. Kth Smallest Element in a Sorted Matrix
162. Find Peak Element
1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum